/*****对服务器端提供的数据接口进行封装*****/

import { message } from "antd"

/**
 * 服务器基础地址
 */
export const base = 'https://www.codeboy.com/zhsqapi/'


/**
 * 8.1、管理员登录
 * 接口地址：admin/login
 * 请求方式：POST
 * 请求主体格式：application/json   
 * 请求数据说明：
 *  名称	必填	类型	说明
 *    aname	是	string	管理员登录名
 *    apwd	是	string	管理员登录密码                
 */
export  let  adminLogin = async (aname, apwd)=>{
  //1.创建请求地址 和 请求选项对象
  let url = base + 'admin/login'
  let options = {
    method: 'POST',                                   //请求方法
    headers: {'Content-Type': 'application/json'},    //请求头部
    body: JSON.stringify({aname, apwd})               //请求主体
  }
  //2.显示一个“加载中”消息提示框
  // message.loading('登录中')        //默认3s后自动关闭
  // message.loading('登录中', 5)     //设定5s后自动关闭
  message.loading('登录中', 0)        //设定不会自动关闭
  //3.发起异步请求，等待...得到响应消息，从响应消息中读取主体数据，再等待...
  let  res  = await  fetch(url, options)
  let  data = await  res.json()
  //4.关闭“加载中”消息提示框
  message.destroy()
  //5.返回主体数据 
  return data
}


/**
 * 8.2、获取当前登录管理员的基础信息及权限信息
 * 接口地址：admin/info
 * 请求方式：GET
 * 请求头部：token - 管理员登录后保存在客户端的身份凭证
 */
export  let  adminInfo = async ( )=>{
  //1.创建请求地址 和 请求选项对象
  let url = base + 'admin/info'
  let options = {
    headers: {'token': localStorage['adminToken']},    //请求头部
  }
  //2.显示一个“加载中”消息提示框
  message.loading('用户信息读取中', 0)        //设定不会自动关闭
  //3.发起异步请求，等待...得到响应消息，从响应消息中读取主体数据，再等待...
  let  res  = await  fetch(url, options)
  let  data = await  res.json()
  //4.关闭“加载中”消息提示框
  message.destroy()
  //5.返回主体数据 
  return data
}


/**
 * 8.3、修改当前登录的管理员密码
 * 接口地址：admin/update/pwd
 * 请求方式：POST
 * 请求主体格式：application/json
 * 请求头部：token
 * 请求数据说明：
 *  名称	必填	类型	说明
 *  token	是	string	请求头部中必须携带登录成功后得到的身份令牌，且必须在有效期内
 *  oldPwd	是	string	原有密码
 *  newPwd	是	string	新密码
 */
export  let  adminUpdatePwd = async (oldPwd, newPwd)=>{
  //1.创建请求地址 和 请求选项对象
  let url = base + 'admin/update/pwd'
  let options = {
    method: 'POST',                                   //请求方法
    headers: {                                        //请求头部
      'Content-Type': 'application/json',
      'token': localStorage['adminToken']
    },    
    body: JSON.stringify({oldPwd, newPwd})            //请求主体
  }
  //2.显示一个“加载中”消息提示框
  message.loading('更新中', 0)        //设定不会自动关闭
  //3.发起异步请求，等待...得到响应消息，从响应消息中读取主体数据，再等待...
  let  res  = await  fetch(url, options)
  let  data = await  res.json()
  //4.关闭“加载中”消息提示框
  message.destroy()
  //5.返回主体数据 
  return data
}


/**
 * 8.4、分页获取居民列表
 * 接口地址：admin/household/list
 * 请求方式：GET
 * 请求头部：token - 管理员登录后保存在客户端的身份凭证  
 * 请求参数： 
 *  名称	必填	类型	说明
 *  pageNum	非必需	number	默认值为1；要查询的页号 
 *  kw	非必需	string	待查询的居民姓名关键字
 */
export  let  adminHouseholdList = async (pageNum=1, kw='')=>{
  //1.创建请求地址 和 请求选项对象
  let url = base + `admin/household/list?pageNum=${pageNum}&kw=${kw}`
  let options = {
    headers: {'token': localStorage['adminToken']},    //请求头部
  }
  //2.显示一个“加载中”消息提示框
  message.loading('居民信息读取中', 0)        //设定不会自动关闭
  //3.发起异步请求，等待...得到响应消息，从响应消息中读取主体数据，再等待...
  let  res  = await  fetch(url, options)
  let  data = await  res.json()
  //4.关闭“加载中”消息提示框
  message.destroy()
  //5.返回主体数据 
  return data
}


